It is known to apply computers and other electronic computing circuitry to problems of image generation and enhancement. Image enhancement has been used in scientific applications, producing higher definition images providing improved insight, and also in consumer products such as enhanced definition television sets.
Typically, images are electronically stored in the form of pixels each having separate brightness and color characteristics. These pixels are displayed in an array to produce an image.
Often it is desirable to increase the number of pixels in an image, e.g. to display the image on a high resolution display or to zoom into a region of the image. A common technique for increasing the number of pixels in an image is known as interpolation. Under this technique, new pixels are inserted between existing pixels. The brightness and color characteristics of the new pixels are computed from the brightness and color characteristics of the original pixels which neighbor the new pixel, e.g. by averaging two or more nearest neighbors.
A difficulty with this technique is that it tends to reduce the sharpness of edges in the image. Edges of the image are characterized by large magnitude transitions in brightness or color between neighboring pixels. However, when a new pixel is inserted between neighboring pixels, the severity of the brightness or color transition is necessarily reduced.
Sophisticated interpolation techniques derive color and brightness values for new pixels using a weighted average of a large number of neighboring pixels, and can to some extent improve the sharpness of the resulting image. However, such sophisticated techniques can be computationally complex and therefore too slow for some applications, such as real-time video.
Thus there remains a need for a high quality image enhancement technique which does not significantly degrade the sharpness of the image and can also be computed in a reasonable time frame.